/*struct Base1 final{}*/

//struct Derived1: Base1 {};//error

/*struct Base2{*/
	//virtual void f() final;
//};

//struct Derived2: Base2{
    //void f();
/*};*/

struct Base {
	virtual void vfun(float) {}
};

struct Derived1 : Base {
	virtual void vfun(int) {}
};

struct Derived2 :Base {
	//virtual void vfun(int) override {}
	//使用override 声明的成员函数不能重写基类成员
	virtual void vfun(float) override {}
};
